return {
  "nvim-treesitter/nvim-treesitter",
  dependencies = {
    {
      "tree-sitter/tree-sitter",
    },
    {
      "tree-sitter/tree-sitter-c",
    },
    {
      "tree-sitter/tree-sitter-cpp",
    },
    {
      "tree-sitter-grammars/tree-sitter-markdown",
    },
    {
      "neovim/tree-sitter-vimdoc",
    },
    {
      "tjdevries/tree-sitter-lua",
    },
    {
      "lyndsysimon/tree-sitter-plantuml",
    },
  },
  event = { "BufReadPost", "BufNewFile" },
  cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" },
  build = ":TSUpdate",
  opts = function()
    -- local opts = require "nvchad.configs.treesitter"
    local opts = {}
    opts.ensure_installed = { "lua", "vimdoc" }
    opts.ignore_install = {
      "astro",
      "agda",
      "angular",
      "arduino",
      "awk",
      "bash",
      "bass",
      "beancount",
      "bicep",
      "c_sharp",
      "cmake",
      "comment",
      "cooklang",
      "css",
      "disassembly",
      "dtd",
      "elm",
      "elixir",
      "fish",
      "foam",
      "fortran",
      "fusion",
      "gitcommit",
      "haskell",
      "just",
      "nickel",
      "org",
      "pioasm",
      "qmljs",
      "r",
      "rust",
      "t32",
      "zig",
    }
    return opts
  end,
  config = function(_, opts)
    -- dofile(vim.g.base46_cache .. "syntax")
    -- dofile(vim.g.base46_cache .. "treesitter")
    require("nvim-treesitter.configs").setup(opts)
    require("nvim-treesitter.install").compilers = { "cl", "gcc", "clang", "clang++" }
  end,
}
